//package com.wxl.micro.service.order.config;
//
//import com.wxl.micro.service.order.intercptor.FeignInterceptor;
//import feign.Logger;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///***
// *  全局配置： 当使用@Configuration 会将配置作用所有的服务提供方
// *  局部配置： 1. 通过配置类：如果只想针对某一个服务进行配置(@FeignClient(configuration = FeignConfig.class))， 就不要加@Configuration
// *           2. 通过配置文件
// *           # feign日志局部配置
// *            feign:
// *              client:
// *                config:
// *                  product-service: # 指定服务
// *                    loggerLevel: BASIC
// *                    contract: feign.Contract.Default #设置为默认的契约  （还原成原生注解）
// *                    # 连接超时时间，默认2s
// *                    connectTimeout: 5000
// *                    # 请求处理超时时间，默认5s
// *                    readTimeout: 10000
// *                    requestInterceptors[0]:
// *                      com.wxl.micro.service.order.intercptor.FeignInterceptor
// */
////@Configuration
//public class FeignConfig {
//
//    @Bean
//    public Logger.Level feignLoggerLevel(){
//        /**
//         * 通过源码可以看到日志等级有 4 种，分别是：
//         * NONE【性能最佳，适用于生产】：不记录任何日志（默认值）。
//         * BASIC【适用于生产环境追踪问题】：仅记录请求方法、URL、响应状态代码以及执行时间。
//         * HEADERS：记录BASIC级别的基础上，记录请求和响应的header。
//         * FULL【比较适用于开发及测试环境定位问题】：记录请求和响应的header、body和元数据。
//         */
//        return Logger.Level.FULL;
//    }
//
//
//    /**
//     * 修改契约配置，支持Feign原生的注解
//     * @return
//     @Bean
//     public Contract feignContract() {
//     return new Contract.Default();
//     }
//     */
//
//    /**
//     * 超时时间配置    Feign的底层用的是Ribbon，但超时时间以Feign配置为准
//     @Bean
//     public Request.Options options() {
//     return new Request.Options(5000, 10000);
//     }
//     */
//
//
//     @Bean
//     public FeignInterceptor feignInterceptor(){
//     return new FeignInterceptor();
//     }
//
//}
